<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Services</title>
	</head>
	<body>
		
		<h1 id="services">Services</h1>
		
		<p>Accéder aux différents services :<br />
		<code>$service = $this-&lt;get('name_service');</code>
		</p>
		
		<p>Exemples de services</p>
		<ul>
			<li>
				<a href="#mailer">Mailer</a>
			</li>
			<li>
				<a href="#templating">Templating</a>
			</li>
			<li>
				<a href="#session">Session</a>
			</li>
		</ul>
		<a href="index.html">Retour</a>
		
		<h2 id="mailer">Mailer</h2>
		
		<p><code>$mailer = $this-&gt;get('mailer');<br />
		$message = \Swift_Message::newInstance()<br />
		-&gt;setSubject('name_message');<br />
		-&gt;setFrom('adresse_mail');<br />
		-&gt;setTo('adresse_mail');<br />
		-&gt;setBody('message');<br />
		$mailer-&gt;send($message);<br />
		return new Response('Email bien envoyé');
		</code></p>
		
		<a href="index.html">Retour</a>
		<a href="#services">Haut de page</a>
		
		<br />
		<br />
		<hr />
		
		<h2 id="templating">Templating</h2>
		
		<p><code>$templating = $this-&gt;get('templating');<br />
		$contenu = $templating-&gt;render('name_racineNameBundle:name_template:fonction.html.twig');<br />
		return new Response($contenu);<br />
		<br />
		$templatin-&gt;has('name_template');    //<em>Pour savoir si le template existe ou nom</em>
		</code></p>
		
		<a href="index.html">Retour</a>
		<a href="#services">Haut de page</a>
		
		<br />
		<br />
		<hr />
		
		<h2 id="session">Session</h2>
		
		<p><code>
		$session = $this-&gt;get('session');<br />
		$user_id = $session-&gt;get('user_id');<br />
		$session-&gt;set('user_id',91);<br />
		return new Response('texte de réponse');
		</code></p>	
		<p>Il est possible de savoir quelles sont les variables de session utilisées via la barre d'outil (<em>profiler</em>, rubrique <em>config</em>, puis <em>session attributes</em>)</p>

		<p>Il est possible des messages flash qui ne s'affiront qu'une seul fois, par exemple lors de l'enregistrement dans la base<br />
		<code>
			$this-&gt;get('session')-&gt;setFlash('info','Article bien enregistré');<br />
			return $this-&gt;redirect($this-&gt;generateUrl('name_route_controller',array()));<br />
		</code>
		<br />
		Ensuite, dans la fonction du controleur correspondant à la route <em>name_route_controller</em>, on appelle le template pour afficher le message flash:<br />
		<code>{% for key, flash in app.session.getFlashes() %}<br />
		{{ flash }}
		{% endfor %}
		</code>
		<br />
		<br />
		La variable <em>app</em> est une variable globale aux vues.
		</p>

		<a href="index.html">Retour</a>
		<a href="#services">Haut de page</a>	
	</body>
</html>